package STUDENT.HOANGQUOCVIET.OOPs.JSON;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.codehaus.jackson.map.ObjectMapper;

public class ARRAYLIST_TO_JSON {
	public static void main(String[] args) {

		Student objStudent1 = new Student(123, "Nguyễn Văn Thắng", 8.9);
		Student objStudent2 = new Student(234, "Trương Văn Phi", 3.2);
		Student objStudent3 = new Student(345, "Hổ Văn Báo", 7.0);
		List<Student> ds = new ArrayList<Student>();
		ds.add(objStudent1);
		ds.add(objStudent2);
		ds.add(objStudent3);

		ObjectMapper objMaper = new ObjectMapper();
		JFileChooser objFile = new JFileChooser();
		objFile.setCurrentDirectory(new java.io.File("C:\\Users\\MR.THONG\\Desktop"));
		objFile.setDialogTitle("Chọn nơi lưu file: ");
		objFile.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
		String[] EXTENSION = new String[] { "json" };
		FileNameExtensionFilter filter = new FileNameExtensionFilter("JSON files", EXTENSION);
		objFile.setFileFilter(filter);
		objFile.setMultiSelectionEnabled(false);

		int returnVal = objFile.showSaveDialog(null);
		String ParentPath = "";
		String FileName = "";
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			// ParentPath = objFile.getSelectedFile().getParent();
			FileName = objFile.getSelectedFile().getPath();

			// 4. Ghi dữ liệu Object Java xuống files JSON
			// writeValue(<đường dẫn tới file đã khởi tạo>, <dữ liệu nguồn cần
			// ghi
			// xuống files>);
			try {
				objMaper.writeValue(new File(FileName), ds);
				System.out.println("Đã ghi dữ liệu xuống files thành công!!!");
			} catch (Exception e) {
				System.out.println("Có lỗi xảy ra: " + e.getMessage());
			}
		}
	}
}